// Replace this section below with the button you want to simulate.
// ===============================================================================
// ============ THIS IS HP PR1101U ==========
// ============ Set the travel range according to your simulation target =========
int travel_range = 3600;

// ============= Button Data ==============
float button_v0_Down[] = {10.000,10.000,10.287,15.015,18.330,23.055,28.628,33.395,37.970,42.225,46.972,50.068,53.858,57.090,60.227,62.855,64.680,66.595,68.260,69.453,70.972,71.472,72.263,71.838,70.407,70.763,71.230,70.543,69.700,68.275,65.532,63.915,62.112,59.667,56.773,53.875,51.055,49.097,47.142,44.525,42.620,40.010,37.142,34.383,35.013,35.665,35.962,36.870,37.547,39.410,41.133,43.097,44.160,45.612,46.880,48.175,49.258,50.190,51.490,52.422,53.333,54.010,55.273,56.235,58.190,62.032,69.060,78.267,90.022,103.188,116.760,129.732,144.115};
float button_v0_Up[] =   {10.000,10.000,10.000,10.000,10.000,12.120,16.195,19.573,22.823,26.273,29.445,32.328,34.730,36.790,38.688,40.115,41.657,43.208,44.197,44.765,45.380,46.120,46.032,46.040,45.850,45.400,45.167,44.650,43.755,42.508,41.250,39.540,38.398,37.062,35.697,34.468,32.610,30.883,29.365,27.560,25.942,24.190,23.010,22.075,22.215,22.685,23.265,24.183,25.070,26.490,27.598,28.832,29.905,31.130,32.060,33.225,34.252,35.307,36.350,37.355,38.495,39.625,40.812,41.877,43.390,47.285,54.210,61.940,72.243,83.990,97.635,115.388,144.115};
float button_v1_Down[] = {10.000,10.000,12.550,15.930,18.725,22.396,26.855,31.498,36.578,41.519,46.079,48.950,51.578,53.731,55.849,57.730,59.154,60.505,61.582,62.291,63.070,63.277,63.571,63.196,62.264,62.185,62.116,61.395,60.485,59.175,57.151,55.703,54.188,52.332,50.184,47.961,45.728,43.904,42.073,39.895,38.039,35.781,33.343,30.917,30.176,29.550,29.048,29.323,29.977,31.636,33.571,35.928,38.027,40.328,42.350,44.111,45.505,46.596,47.636,48.243,48.639,48.828,49.352,49.894,51.236,53.998,58.972,65.604,73.740,82.317,90.483,97.703,105.176};
float button_v1_Up[] =   {10.000,10.000,10.219,13.340,16.528,19.576,23.168,26.201,28.910,31.558,34.137,36.815,39.465,41.974,44.237,45.988,47.505,48.816,49.755,50.447,51.063,51.559,51.453,51.268,50.886,50.242,49.544,48.548,47.232,45.652,44.042,42.239,40.771,39.230,37.671,36.172,34.386,32.735,31.277,29.757,28.395,27.014,25.953,25.050,24.745,24.721,24.916,25.451,26.116,27.167,28.173,29.325,30.418,31.542,32.447,33.410,34.286,35.180,36.073,36.962,37.981,39.100,40.320,41.466,42.789,45.346,49.655,54.801,61.691,69.463,77.872,87.734,102.516};
float button_v2_Down[] = {12.267,13.191,14.813,16.844,19.120,21.737,25.083,29.602,35.187,40.813,45.185,47.831,49.297,50.373,51.471,52.604,53.629,54.414,54.904,55.130,55.169,55.082,54.879,54.554,54.121,53.607,53.002,52.247,51.270,50.075,48.771,47.491,46.264,44.998,43.596,42.047,40.401,38.711,37.003,35.265,33.458,31.552,29.544,27.451,25.340,23.435,22.134,21.777,22.408,23.863,26.009,28.758,31.895,35.043,37.821,40.048,41.752,43.002,43.782,44.065,43.945,43.645,43.430,43.552,44.283,45.965,48.884,52.941,57.457,61.445,64.205,65.675,66.237};
float button_v2_Up[] =   {13.464,14.877,17.351,20.422,23.726,27.033,30.140,32.830,34.997,36.843,38.829,41.302,44.201,47.158,49.787,51.861,53.354,54.425,55.314,56.128,56.746,56.998,56.874,56.496,55.921,55.083,53.921,52.446,50.709,48.796,46.834,44.939,43.144,41.399,39.644,37.875,36.161,34.587,33.190,31.954,30.847,29.837,28.896,28.024,27.275,26.757,26.566,26.720,27.162,27.845,28.749,29.819,30.931,31.955,32.834,33.596,34.320,35.053,35.796,36.568,37.467,38.576,39.829,41.056,42.188,43.407,45.100,47.662,51.138,54.936,58.109,60.079,60.917};
float button_v3_Down[] = {11.133,11.596,12.407,13.428,14.603,16.072,18.293,21.985,27.649,34.888,42.243,47.945,50.971,51.547,50.819,50.061,50.043,50.829,51.986,52.977,53.468,53.392,52.864,52.085,51.248,50.482,49.849,49.347,48.897,48.378,47.715,46.907,45.966,44.887,43.679,42.382,41.020,39.566,37.977,36.273,34.560,32.959,31.471,29.927,28.173,26.340,24.820,23.889,23.480,23.402,23.615,24.194,25.116,26.191,27.194,28.054,28.892,29.915,31.265,32.966,34.960,37.169,39.510,41.916,44.390,47.052,50.072,53.472,56.988,60.188,62.709,64.394,65.228};
float button_v3_Up[] =   {14.410,16.209,19.359,23.274,27.508,31.830,36.117,40.248,44.063,47.424,50.285,52.676,54.612,56.076,57.064,57.617,57.822,57.814,57.703,57.495,57.113,56.513,55.740,54.852,53.831,52.623,51.225,49.696,48.086,46.439,44.812,43.237,41.701,40.189,38.729,37.370,36.130,34.969,33.814,32.614,31.392,30.232,29.238,28.477,27.980,27.738,27.723,27.888,28.189,28.605,29.172,29.945,30.875,31.780,32.505,33.079,33.707,34.561,35.620,36.716,37.751,38.755,39.764,40.736,41.660,42.695,44.138,46.296,49.311,52.972,56.687,59.703,61.383};
float button_v4_Down[]=  {10.000,10.000,10.001,10.013,10.085,10.407,11.504,14.367,20.112,28.963,39.301,48.059,52.644,52.722,50.167,47.518,46.457,47.244,49.067,50.824,51.768,51.702,50.849,49.616,48.376,47.357,46.695,46.447,46.524,46.681,46.660,46.324,45.668,44.776,43.763,42.717,41.639,40.421,38.951,37.280,35.663,34.367,33.397,32.403,31.006,29.245,27.506,26.000,24.551,22.941,21.221,19.630,18.337,17.338,16.568,16.060,16.032,16.827,18.748,21.867,25.975,30.692,35.589,40.281,44.497,48.138,51.260,54.002,56.519,58.930,61.213,63.113,64.220};
float button_v4_Up[]=    {15.356,17.541,21.368,26.126,31.291,36.627,42.094,47.665,53.129,58.004,61.742,64.050,65.022,64.994,64.342,63.372,62.290,61.203,60.092,58.863,57.480,56.028,54.607,53.208,51.742,50.162,48.529,46.946,45.462,44.082,42.791,41.536,40.259,38.979,37.814,36.865,36.099,35.352,34.439,33.275,31.936,30.627,29.579,28.931,28.684,28.719,28.879,29.056,29.217,29.365,29.594,30.071,30.819,31.606,32.176,32.562,33.093,34.070,35.444,36.865,38.034,38.933,39.699,40.416,41.133,41.983,43.176,44.931,47.484,51.008,55.265,59.327,61.850};
float button_v5_Down[] = {10.000,10.000,10.001,10.010,10.065,10.311,11.166,13.454,18.218,25.945,35.611,44.633,50.316,51.719,50.096,47.694,46.216,46.133,46.962,47.955,48.638,48.912,48.880,48.630,48.192,47.609,47.005,46.478,45.968,45.330,44.528,43.689,42.912,42.146,41.285,40.296,39.207,38.011,36.650,35.124,33.605,32.314,31.263,30.136,28.582,26.598,24.479,22.438,20.441,18.441,16.606,15.251,14.597,14.630,15.154,16.000,17.238,19.218,22.398,27.016,32.828,39.106,44.975,49.907,54.092,58.472,64.340,72.484,82.343,92.022,99.545,104.117,106.114};
float button_v5_Up[] =   {15.198,17.319,21.032,25.651,30.666,35.859,41.214,46.755,52.349,57.603,62.016,65.228,67.138,67.873,67.718,67.008,65.989,64.785,63.468,62.123,60.861,59.718,58.589,57.310,55.817,54.176,52.447,50.572,48.472,46.281,44.356,42.989,42.133,41.446,40.581,39.395,37.935,36.303,34.604,32.964,31.526,30.427,29.775,29.580,29.665,29.756,29.733,29.703,29.803,30.027,30.334,30.770,31.364,32.011,32.584,33.144,33.953,35.163,36.578,37.872,38.959,39.968,40.914,41.651,42.235,43.105,44.785,47.505,51.155,55.449,59.923,63.797,66.089};
float button_v6_Down[] = {10.000,10.000,10.001,10.007,10.044,10.216,10.828,12.540,16.323,22.927,31.922,41.206,47.989,50.717,50.025,47.870,45.975,45.022,44.856,45.086,45.508,46.123,46.911,47.645,48.008,47.861,47.315,46.508,45.413,43.979,42.397,41.055,40.156,39.516,38.808,37.876,36.774,35.601,34.348,32.969,31.546,30.262,29.129,27.868,26.159,23.951,21.451,18.876,16.331,13.941,11.991,10.872,10.857,11.921,13.739,15.940,18.444,21.610,26.047,32.164,39.680,47.521,54.362,59.534,63.687,68.807,77.419,90.967,108.166,125.114,137.877,145.121,148.009};
float button_v6_Up[] =   {15.040,17.096,20.697,25.175,30.042,35.092,40.334,45.844,51.568,57.203,62.291,66.407,69.255,70.751,71.094,70.645,69.687,68.368,66.843,65.383,64.242,63.408,62.571,61.412,59.893,58.190,56.364,54.197,51.483,48.480,45.921,44.442,44.006,43.913,43.348,41.925,39.771,37.255,34.769,32.653,31.117,30.227,29.971,30.229,30.646,30.793,30.587,30.350,30.389,30.689,31.073,31.468,31.908,32.417,32.991,33.725,34.813,36.256,37.712,38.879,39.884,41.003,42.129,42.887,43.337,44.226,46.393,50.078,54.826,59.890,64.582,68.268,70.328};
float button_v7_Down[] = {10.000,10.000,10.000,10.004,10.029,10.153,10.642,12.160,15.889,23.071,33.753,45.663,54.901,58.505,56.513,51.526,46.590,43.528,42.691,43.525,45.244,47.198,48.913,49.998,50.246,49.807,49.059,48.249,47.316,46.092,44.579,42.977,41.515,40.300,39.267,38.180,36.772,34.992,33.070,31.343,30.005,28.992,27.941,26.390,24.148,21.459,18.748,16.250,13.938,11.971,10.995,10.436,10.428,10.960,11.870,13.073,15.993,19.831,24.943,31.644,39.842,48.809,57.409,64.817,71.334,78.767,89.737,105.589,124.456,141.935,154.322,160.968,163.498};
float button_v7_Up[] =   {15.177,17.288,20.986,25.589,30.605,35.861,41.444,47.507,53.945,60.195,65.492,69.395,71.939,73.416,74.168,74.477,74.472,74.141,73.492,72.636,71.666,70.496,68.935,66.913,64.603,62.274,60.076,57.927,55.629,53.153,50.773,48.844,47.454,46.322,44.998,43.186,40.933,38.562,36.459,34.859,33.773,33.109,32.839,32.945,33.255,33.468,33.466,33.452,33.688,34.228,34.980,35.908,36.979,37.992,38.660,38.954,39.216,39.802,40.745,41.851,42.983,44.103,45.152,46.069,47.013,48.424,50.805,54.405,59.032,64.108,68.901,72.681,74.785};
float button_v8_Down[] = {10.000,10.000,10.000,10.001,10.013,10.090,10.455,11.780,15.455,23.215,35.584,50.121,61.814,66.293,63.000,55.183,47.205,42.034,40.525,41.964,44.980,48.274,50.916,52.350,52.484,51.753,50.804,49.991,49.218,48.205,46.762,44.900,42.874,41.085,39.727,38.485,36.770,34.382,31.793,29.716,28.464,27.722,26.753,24.913,22.137,18.967,16.046,13.623,11.546,10.000,10.000,10.000,10.000,10.000,10.000,10.207,13.543,18.051,23.839,31.124,40.004,50.097,60.455,70.100,78.980,88.728,102.054,120.211,140.746,158.755,170.768,176.814,178.987};
float button_v8_Up[] =   {15.313,17.479,21.276,26.003,31.168,36.630,42.554,49.170,56.323,63.186,68.693,72.383,74.623,76.082,77.243,78.310,79.257,79.913,80.140,79.890,79.091,77.585,75.299,72.415,69.313,66.359,63.789,61.656,59.774,57.826,55.626,53.246,50.901,48.730,46.647,44.447,42.094,39.869,38.149,37.065,36.428,35.992,35.706,35.662,35.865,36.142,36.345,36.554,36.988,37.767,38.888,40.349,42.050,43.567,44.329,44.183,43.618,43.348,43.778,44.823,46.081,47.204,48.175,49.251,50.689,52.623,55.217,58.732,63.238,68.325,73.220,77.094,79.242};
float button_v9_Down[] = {10.000,10.000,10.000,10.000,10.000,10.027,10.268,11.400,15.021,23.359,37.415,54.579,68.727,74.081,69.487,58.840,47.820,40.540,38.359,40.403,44.716,49.350,52.918,54.703,54.722,53.699,52.549,51.733,51.121,50.318,48.945,46.822,44.233,41.870,40.186,38.790,36.768,33.772,30.516,28.090,26.923,26.452,25.565,23.436,20.126,16.475,13.343,10.996,10.000,10.000,10.000,10.000,10.000,10.000,10.000,10.000,11.092,16.271,22.735,30.604,40.166,51.385,63.501,75.383,86.627,98.688,114.371,134.833,157.036,175.575,187.214,192.660,194.476};
float button_v9_Up[] =   {15.450,17.670,21.566,26.417,31.731,37.399,43.664,50.833,58.701,66.177,71.894,75.371,77.307,78.747,80.317,82.143,84.042,85.685,86.788,87.144,86.515,84.673,81.663,77.917,74.023,70.444,67.502,65.385,63.919,62.499,60.478,57.648,54.349,51.138,48.296,45.708,43.255,41.176,39.839,39.271,39.083,38.874,38.574,38.379,38.475,38.817,39.224,39.656,40.288,41.306,42.795,44.789,47.121,49.142,49.998,49.412,48.020,46.894,46.811,47.795,49.180,50.305,51.198,52.433,54.365,56.822,59.629,63.059,67.444,72.543,77.539,81.507,83.699};

// ============ Vibration settings ============
bool if_vib = true;
int vib_point_1 = 1300;    // will not activate anything
int vib_point_2 = 1700;    // will not activate anything

int vib_file0 = 6; // will not activate anything
int vib_file1 = 6;
int vib_file2 = 8;
int vib_file3 = 8;
int vib_file4 = 7;
int vib_file5 = 7;
int vib_file6 = 9;
int vib_file7 = 9;
int vib_file8 = 9;
int vib_file9 = 9;

// ===============================================================================
// Replace the section above